﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Eco.Handles;
using Eco.Services;
using segDroopyEyes.Eco.Services.XmlQueryService2;
using uCoreInterfaces2;
using CommonClasses.Utility;
using System.IO;
using Eco.ObjectRepresentation;

namespace PinsDescriptionLoader
{
    /// <summary>
    /// Класс, реализующий загрузку и сохранение настроек таблицы описания пинов
    /// </summary>
    public class PinsDescriptionLoader
    {
        private IEcoServiceProvider serviceProvider;
        private IOclService oclService;

        /// <summary>
        /// Конструктор загрзучика табллиц соответствия пинов
        /// </summary>
        /// <param name="serviceProvider">провайдер ECO-сервисов</param>
        public PinsDescriptionLoader(IEcoServiceProvider serviceProvider)
        {
            if (serviceProvider == null)
                throw new NullReferenceException("EcoSpace cannot be null!");

            this.serviceProvider = serviceProvider;

            oclService = serviceProvider.GetEcoService<IOclService>();
        }

        /// <summary>
        /// Загрузить порт из файла
        /// </summary>
        /// <param name="fileName">Имя файла</param>
        public void LoadPinsDescriptionTableFromFile(string fileName)
        {
            var dess = serviceProvider.GetEcoService<IXmlSerializerService>();

            PathUtility.RestoreCurrentDirectory(Locality.ExeFile);
            dess.LoadFromFile(fileName);
        }
        /// <summary>
        /// Сохранить порт в файл
        /// </summary>
        /// <param name="fileName">Имя файла</param>
        public void SavePortToFile(string fileName)
        {
            var sserv = serviceProvider.GetEcoService<IXmlQueryServiceSEG>();

            //сохраняем порт
            //sserv.ExeXmlFile2XmlFile(null, "queries\\SavePortQuery.xmlq", "", fileName);
        }
    }
}
